// https://leetcode.cn/problems/search-a-2d-matrix-ii/
// Created by ade on 2022/9/9.
// 每行的元素从左到右升序排列。
// 每列的元素从上到下升序排列。

class Solution {
public:
    // 时间复杂度m + logN
    bool searchMatrix(vector <vector<int>> &matrix, int target) {
        int row = matrix.size();
        int col = matrix[0].size();
        for (int i = 0; i < row; i++) {
            if (matrix[i][col - 1] < target) continue;
            if (matrix[i][0] > target) return false;
            if (binary_search(matrix[i].begin(), matrix[i].end(), target)) return true;
        }
        return false;
    }
};